<template>
  <div class="home">
    <div class="headers">
      <div class="headers-main">
        <Header></Header>
        <ly-tab
          v-model="selectedId"
          :items="items"
          :options="options"
          @change="changeTab"
        />
      </div>
    </div>

    <section class="wrapper">
      <div>
        <div v-for="(item, index) in newData" :key="index">
          <Swiper
            v-if="item.type === 'swiperList'"
            :swiperList="item.data"
          ></Swiper>
          <Icons
            v-if="item.type === 'iconsList'"
            :iconsList="item.data"
          ></Icons>
          <Recommend
            v-if="item.type === 'recommendList'"
            :recommendList="item.data"
          ></Recommend>
          <Ad v-if="item.type === 'adList'" :adList="item.data"></Ad>
          <Like v-if="item.type === 'likeList'" :likeList="item.data"></Like>
        </div>
      </div>
    </section>

    <Tabbar></Tabbar>
  </div>
</template>

<script>
import Tabbar from "@/components/common/Tabbar.vue"
import Header from "@/components/home/Header.vue"
import Swiper from "@/components/home/Swiper.vue"
import Icons from "@/components/home/Icons.vue"
import Recommend from "@/components/home/Recommend.vue"
import Like from "@/components/home/Like.vue"
import Ad from "@/components/home/Ad.vue"
//引入滑动插件
import BetterScroll from "better-scroll"
//引入封装后的axios
import http from "@/common/api/request"
export default {
  components: { Tabbar, Header, Swiper, Icons, Recommend, Like, Ad },
  name: "Home",
  data () {
    return {
      selectedId: 0,
      items: [],
      newData: [],
      options: {
        activeColor: "#b0352f",
      },
    }
  },
  created () {
    this.getData()
  },

  methods: {
    changeTab (item, index) {
      this.addData(index)
    },
    async addData (index) {
      let res = await http.$axios({
        url: "/api/index_list/" + index + "/data/1",
      })

      if (res.constructor != Array) {
        this.newData = res.data
      } else {
        this.newData = res
      }
      //当dom都加载完毕了再执行
      this.$nextTick(() => {
        new BetterScroll(".wrapper", {
          movable: true,
          zoom: true,
        })
      })
    },
    async getData () {
      let res = await http.$axios({
        url: "/api/index_list/0/data/1",
      })

      // let res = await axios({
      //   url: "/api/index_list/0/data/1",
      // });
      this.items = Object.freeze(res.topBar)
      this.newData = Object.freeze(res.data)
      //当dom都加载完毕了再执行
      this.$nextTick(() => {
        new BetterScroll(".wrapper", {
          movable: true,
          zoom: true,
          click: true,
        })
      })
    },
  },
};
</script>

<style scoped>
.home {
  display: flex;
  flex-direction: column;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}
.headers {
  width: 100%;
  height: 2.3rem;
}

.headers-main {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.wrapper {
  flex: 1;
  overflow: hidden;
}
.ly-tab {
  border-bottom: none;
}
</style>